Ext.ns('Movimientos');

Movimientos.grdHistorial = Ext.extend(Ext.grid.GridPanel, {
	trackMouseOver : false,
	width : 900,
	height : 200,
	frame : false,
	url : '/cake/syscable/TcMovimientosDiarios/historialext',
	initComponent : function() {
		this.rowActions = new Ext.ux.grid.RowActions({
					header : 'Reversar',
					autoWidth : false,
					width : 60,
					keepSelection : true,
					actions : [{
								iconIndex : 'action1',
								qtipIndex : 'qtip1',
								iconCls : 'icon-undo',
								tooltip : 'Reversar'
							}]
				});
		this.rowExpander = new Ext.ux.grid.RowExpander({
			tpl : new Ext.Template(
					'--<br>',
					'<b>Numero Contrato:</b> {TcContrato-contrato}',
					'&nbsp &nbsp &nbsp &nbsp <b>Descripcion:</b> {TcMovimientosDiario-descripcion}',
					'<p><b>Adicionado por:</b> {TcMovimientosDiario-adicionado_por}',
					'&nbsp &nbsp &nbsp &nbsp<b>Fecha Adicion:</b> {-created:date("d-F-Y")}</p>'),
			getRowClass : function(record, index) {
				if (!record) {
					return ''
				}
				if (record.get('TcMovimientosDiario-mg_tipo_situacione_id') == 2) {
					return 'red-row'
				}
			}
		});
		this.rowActions.on('action', this.onRowAction, this);
		var config = {
			store : new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : this.url
						}),
				reader : new Ext.data.JsonReader({
					id : 'TcMovimientosDiario-id',
					root : 'historial',
					totalProperty : 'total',
					fields : [{
								name : 'TcMovimientosDiario-id'
							}, {
								name : 'TcContrato-contrato'
							}, {
								name : 'TcMovimientosDiario-tc_contrato_id'
							}, {
								name : 'MgAgente-descripcion'
							}, {
								name : 'MgDocumento-codigo_referencia'
							}, {
								name : 'TcMovimientosDiario-mg_tipo_situacione_id'
							}, {
								name : 'TcMovimientosDiario-descripcion'
							}, {
								name : 'TcMovimientosDiario-valor_pagado'
							}, {
								name : 'TcMovimientosDiario-fecha_referencia',
								type : 'date',
								dateFormat : 'Y-m-d'
							}, {
								name : 'TcMovimientosDiario-codo'
							}, {
								name : 'TcMovimientosDiario-pago_mes_inicial',
								type : 'date',
								dateFormat : 'Y-m-d'
							}, {
								name : 'TcMovimientosDiario-pago_mes_final',
								type : 'date',
								dateFormat : 'Y-m-d'
							}, {
								name : 'TcMovimientosDiario-adicionado_por'
							}, {
								name : 'TcMovimientosDiario-created',
								type : 'date',
								dateFormat : 'Y-m-d'
							}, {
								name : 'action1',
								type : 'string'
							}, {
								name : 'qtip1',
								type : 'string'
							}]
				})
			}),
			sm : new Ext.grid.RowSelectionModel({
						singleSelect : true,
						listeners : {
							load : {
								scope : this,
								fn : function() {
									this.getSelectionModel().selectFirstRow();
								}
							}
						}
					}),
			columns : [this.rowExpander, {
						header : "ID",
						dataIndex : 'TcMovimientosDiario-id',
						hidden : true
					}, {
						header : "No. Contrato",
						dataIndex : 'TcContrato-contrato',
						width : 80
					}, {
						header : "Agente",
						dataIndex : 'MgAgente-descripcion',
						width : 70
					}, {
						header : "Id Contrato",
						dataIndex : 'TcMovimientosDiario-tc_contrato_id',
						width : 70,
						hidden : true
					}, {
						header : "Situacion",
						dataIndex : 'TcMovimientosDiario-mg_tipo_situacione_id',
						width : 65,
						hidden : true
					}, {
						header : "Documento",
						dataIndex : 'MgDocumento-codigo_referencia',
						width : 60
					}, {
						header : "Descripcion",
						dataIndex : 'TcMovimientosDiario-descripcion',
						width : 150,
						hidden : true
					}, {
						header : "Valor",
						dataIndex : 'TcMovimientosDiario-valor_pagado',
						width : 45
					}, {
						header : "Fecha Referencia",
						dataIndex : 'TcMovimientosDiario-fecha_referencia',
						renderer : Ext.util.Format.dateRenderer('d-F-Y')
					}, {
						header : "codo",
						dataIndex : 'TcMovimientosDiario-codo',
						width : 40
					}, {
						header : "Pago Inicial",
						dataIndex : 'TcMovimientosDiario-pago_mes_inicial',
						renderer : Ext.util.Format.dateRenderer('F-Y')
					}, {
						header : "Pago Final",
						dataIndex : 'TcMovimientosDiario-pago_mes_final',
						renderer : Ext.util.Format.dateRenderer('F-Y')
					}, {
						header : "Adicionado por",
						dataIndex : 'TcMovimientosDiario-adicionado_por'
					}, {
						header : "Creado",
						dataIndex : 'TcMovimientosDiario-created',
						renderer : Ext.util.Format.dateRenderer('d-F-Y')
					}, this.rowActions],
			title : 'Historial de Movimientos',
			iconCls : 'icon-grid',
			plugins : [this.rowActions, this.rowExpander],
			stripeRows : true,
			columnLines : true
		};
		Ext.apply(this, Ext.apply(this.initialConfig, config));
		this.tbar = new Ext.PagingToolbar({
					pageSize : 5,
					store : this.store,
					displayInfo : true,
					displayMsg : 'Mostrando Movimientos del {0} - {1} de {2}',
					emptyMsg : 'No hay Movimientos que mostrar'
				});
		Movimientos.grdHistorial.superclass.initComponent
				.apply(this, arguments);
	},
	onRender : function() {
		this.store.load();
		Movimientos.grdHistorial.superclass.onRender.apply(this, arguments);
	},
	onRowAction : function(grid, record, action, row, col) {
		switch (action) {
			case 'icon-undo' :
				var saveData = new Ext.data.Connection().request({
					url : '/cake/syscable/TcMovimientosDiarios/reversionExt',
					params : {
						mov_id : record.get('TcMovimientosDiario-id'),
						contrato_id : record
								.get('TcMovimientosDiario-tc_contrato_id')
					},
					success : function(response) {
						if (Ext.decode(response.responseText).success) {
							Ext.MessageBox.alert('Mensaje',
									'Reversion Realizada Exitosamente');
						} else {
							Ext.MessageBox.alert('Mensaje',
									'Reversion Realizada NO Exitosamente');
						}

						Ext.getCmp(grid.id).store.baseParams['contratoid'] = record
								.get('TcMovimientosDiario-tc_contrato_id');
						Ext.getCmp(grid.id).store.load({
									params : {
										limit : 5,
										start : 0
									}
								});
					},
					failure : function(response) {
						Ext.MessageBox.alert('Message',
								'ERROR no se reverso el movimiento!');
						Ext.getCmp(grid.id).store.baseParams['contratoid'] = record
								.get('TcMovimientosDiario-tc_contrato_id');
						Ext.getCmp(grid.id).store.load({
									params : {
										limit : 5,
										start : 0
									}
								});
					}
				});
				break;
			break;
	}
	}
});
Ext.reg('grdHistorialMovimientos', Movimientos.grdHistorial);